/*
#include<bits/stdc++.h>
using namespace std;
int n;
bool check(int x)
{
  int tmp = 1;
  while(x)
  {
    int b = x % 10;
    if(b % 2 != 0 && tmp % 2 != 0)
    {
      tmp ++;
    }
    else if (b % 2 == 0 && tmp % 2 == 0)
    {
      tmp ++;
    }
    else
    {
      return false;
    }
    x /= 10;
  }
  return true;
}
int main()
{
  int cnt = 0;
  scanf("%d", &n);
  for (int i = 1; i <= n; i ++)
  {
    if (check(i))
    {
      cnt ++;
    }
  }
  printf("%d", cnt);
  return 0;
}
*/


#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 10;
int p[N], c[N];
int n, s;
long long ans = 0;
long long sum = 0;
int res = 0;
int main()
{
  scanf("%d %d", &n, &s);
  for (int i = 1; i <= n; i ++)
  {
    scanf("%d", &p[i]);
    scanf("%d", &c[i]);
  }
  
  for (int i = 1; i <= n; i ++)
  {
    res = max(c[i], res);
  }
  while(res --)
  {
    sum = 0;
    for (int i = 1; i <= n; i ++)
    {
      if(c[i])  sum += p[i];
    }
    if (sum > s)
    {
      ans += s;
      for (int i = 1; i <= n; i ++)
      {
        if (c[i])  c[i] --;
      }
    }
    else
    {
      for (int i = 1; i <= n; i ++)
      {
        if(c[i])
        {
          ans += (long long)p[i] * c[i];
        }
      }
      break;
    }
  }
  printf("%lld", ans);
  return 0;
}































